package com.itlong.cloud.operate.service;

import com.itlong.cloud.POJO.DTO.operate.OperatePlanManageInfoDTO;
import com.itlong.cloud.POJO.DTO.operate.OperatePlanManagePageDTO;
import com.itlong.cloud.POJO.VO.operate.OperatePlanManageInfoVO;
import com.itlong.cloud.utils.page.Page;

/**
 * <desc>
 *      运营-智慧停车-设备方案管理服务接口。
 * <desc/>
 *
 * @createDate 2018/11/05.
 */
public interface IOperatePlanManageService {

    /**
     * <desc>
     *      分页获取设备方案信息。
     * <desc/>
     *
     * @param  operatePlanManagePageDTO 参数请求对象
     * @return
     * @author Qiang.S
     * @createDate 2018/11/05
     */
    Page<OperatePlanManageInfoVO> getPlanInfoPage(OperatePlanManagePageDTO operatePlanManagePageDTO) throws Exception;

    /**
     * <desc>
     *      判断方案名称是否重复。
     * <desc/>
     *
     * @param  planName 方案名称
     * @param  planId 方案编号
     * @return
     * @author Qiang.S
     * @createDate 2018/11/05
     */
    Integer checkPlanName(String planName,String planId) throws Exception;

    /**
     * <desc>
     *      保存设备方案。
     * <desc/>
     *
     * @param  operatePlanManageInfoDTO 参数请求对象
     * @return
     * @author Qiang.S
     * @createDate 2018/11/05
     */
    Integer save(OperatePlanManageInfoDTO operatePlanManageInfoDTO) throws Exception;

    /**
     * <desc>
     *      更新设备方案。
     * <desc/>
     *
     * @param  operatePlanManageInfoDTO 参数请求对象
     * @return
     * @author Qiang.S
     * @createDate 2018/11/05
     */
    Integer update(OperatePlanManageInfoDTO operatePlanManageInfoDTO) throws Exception;

    /**
     * <desc>
     *      删除设备方案。
     * <desc/>
     *
     * @param  operatePlanManageInfoDTO 参数请求对象
     * @return
     * @author Qiang.S
     * @createDate 2018/11/05
     */
    Integer delete(OperatePlanManageInfoDTO operatePlanManageInfoDTO) throws Exception;

    /**
     * <desc>
     *      根据方案编号获取名称
     * <desc/>
     *
     * @param planId 方案编号
     * @return
     * @author Qiang.S
     * @createDate 2018-09-25
     */
    OperatePlanManageInfoVO getDetail(String planId) throws Exception;

}
